/**
 *
 */
package com.ce.pms.house.dao;

import java.util.List;
import java.util.Set;

import com.ce.pms.base.dao.IPmsBaseDao;
import com.ce.pms.house.model.CoalitionHouseDomain;
import com.ce.pms.house.model.FlatDomain;
import com.ce.pms.house.model.HouseDomain;

/**
 * 功能描述: ICoalitionHouseDao
 * <p>
 * 版权所有：中企动力
 * <p>
 * 未经本公司许可，不得以任何方式复制或使用本程序任何部分
 *
 * @author 付湘辉 Created on： 2008-7-1
 * @author 付湘辉 update on： 2008-7-1
 */
public interface ICoalitionHouseDao extends IPmsBaseDao<CoalitionHouseDomain>{

	/**
	 * @param coalitionHouseDomain
	 * @roseuid 485A291D005D
	 */
	public void saveCoalitionHouse(CoalitionHouseDomain coalitionHouseDomain);

	/**
	 * @param coalitionHouseDomain
	 * @roseuid 485A296800FA
	 */
	public void updateCoalitionHouse(CoalitionHouseDomain coalitionHouseDomain);

	/**
	 * @param houseId
	 * @param houseList
	 * @roseuid 485A29A60196
	 */
	public void deleteCoalitonHouse(Long houseId, List houseList);

	/**
	 * @param houseId
	 * @return List<FlatDomain>
	 * @roseuid 485A29E00232
	 */
	public List<FlatDomain> findHouseByCoalitionId(Long houseId);

	/**
	 * @param flatDomain
	 * @return List
	 * @roseuid 485A2A7C002E
	 */
	public List checkHouseIsUnited(List<FlatDomain> flatDomain);

	/**
	 * @param flatDomains
	 * @return Boolean
	 * @roseuid 485A2A7C0040
	 */
	public Boolean checkHousesDuplicate(CoalitionHouseDomain coalition);

	/**
	 *
	 * 功能描述: 检查是否存在指定房号的管理房
	 *
	 * @author 付湘辉
	 * Created on:2008-7-1
	 *
	 * 修改原因：
	 * @param coalitonNumber
 	 * @roseuid 485A2A7C004E
	 * @return Boolean true 存在　false 不存在
	 */
	public Boolean checkUnitedHouseNumberExist(String coalitonNumber);
	/**
	 *
	 * 功能描述: 检查是否存在指定房号的管理房(除给定的id的管理房外)
	 *
	 * @author Adama Yue
	 * Created on:2008-7-1
	 *
	 * 修改原因：
	 * @param id
	 * @param coalitonNumber
	 * @roseuid 485A2A7C004E
	 * @return Boolean 返回结果
	 */
	public Boolean checkUnitedHouseNumberExist(String coalitonNumber,Long id);
	/**
	 *
	 * 功能描述: 根据管理房号查询管理房实体，如果不存在返回空值。
	 * 只查询有效的信息。
	 *
	 * @author 付湘辉
	 * Created on:2008-7-1
	 *
	 * 修改原因：
	 * @param houseNumber　管理房号
	 * @return CoalitionHouseDomain 返回结果
	 */
	public CoalitionHouseDomain getCoalitionHouseByHouseNumber(String houseNumber);

	/**
	 * 跟据houses查询是否存在关联houses集合的管理房
	 *@param houses 房屋集合
	 * @author Adama Yue
	 * @CreateDate:下午04:16:27
	 */
	public CoalitionHouseDomain findOld(Set<HouseDomain> houses);

	/**
	*
	* 功能描述: 检查在指定期数下是否存在指定房号的管理房
	*
	* @author 付湘辉
	* Created on:2008-7-1
	*
	* 修改原因：
	* @param coalitonNumber
	* @roseuid 485A2B2A0226
	* @return Boolean true 存在　false 不存在
	*/
	public Boolean checkUnitedHouseNumberExist(Long projectId,String coalitonNumber);

	public Object getCoalitionHouseByHouseId(Long houseId);


}
